/**********************************************************************************************
* 版    权：上海金智晟东电力科技有限公司南京分公司
* 项目名称：
* 产品名称：
* 创建日期：2023年03月18日
* 创 建 人：zzg
* 文 件 名：pca9555.h
* 文件功能：PCA9555驱动头文件
* 修 改 者：							日期：
* 备    注：
***********************************************************************************************/
#ifndef __PCA9555_H
#define __PCA9555_H

//#define PCA9555_INT_PORT		GPIO_PIN_6	//PCA9555中断引脚				

#define PCA9555_ADDR			0x20		// PCA9555的ID
#define PCA9555_CMD_BIT			0X01		// PCA9555读写命令位

#define Input_Port0 			0x00		// 0号输入寄存器命令字
#define Input_Port1				0x01		// 1号输入寄存器命令字
#define Output_Port0 			0x02		// 0号输出寄存器命令字
#define Output_Port1			0x03		// 1号输出寄存器命令字
#define Polarity_Port0			0x04		// 0号极性反转寄存器命令字
#define Polarity_Port1			0x05		// 1号极性反转寄存器命令字
#define Config_Port0			0x06		// 0号配置寄存器命令字
#define Config_Port1			0x07		// 1号配置寄存器命令字

/*------------------------------------------------------------------------
 * I型终端拓展引脚
-------------------------------------------------------------------------*/
//PCA9555端口0组引脚
#define IP179_RST_PORT			0x01
#define CH9434_RST_PORT			0x02
#define LT8618_RST_PORT			0x04
#define CARD_RST_PORT			0x08
#define USB_RST_PORT			0x10
#define CARD_PWR_PORT			0x20
#define RESERVE0_PORT			0x40
#define RESERVE1_PORT			0x80

//PCA9555端口1组引脚
#define CARD1_INS_PORT			0x01
#define CARD2_INS_PORT			0x02
#define CARD3_INS_PORT			0x04
#define CARD4_INS_PORT			0x08
#define CARD1_CFGMD2_PORT		0x10
#define CARD1_CFGMD1_PORT		0x20
#define CARD1_CFGMD0_PORT		0x40
#define RESERVE2_PORT			0x80

//端口偏移位数
#define BT_RST_OFFSET			0
#define AC_JC_OFFSET			2
#define LED_RUN_OFFSET			3
#define LED_ALARM_OFFSET		1
#define LED_RERS3_OFFSET		7
#define LED_RERS1_OFFSET		5
#define LED_RERS2_OFFSET		6
#define NB_IO2_OFFSET			6
#define LORA_IO2_OFFSET			1

void Pca9555Init(void);														// PCA9555初始化
//uint8_t Pca9555Check(void);												// PCA9555检测函数
void Pca9555SendData(uint8_t *buf, uint8_t addr, int32_t len);				// PCA9555发送数据函数
void Pca9555ReceData(uint8_t *buf, uint8_t addr, int32_t len);				// PCA9555接收数据函数


#endif


